package com.haixiaoke.saas.common.electronicVisa.domain;

import com.fasc.open.api.v5_1.req.signtask.AddFillFieldInfo;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import lombok.Data;

import javax.validation.constraints.NotNull;
import java.util.Date;
import java.util.List;

/**
 * 企业电子签合同对象
 *
 * @author panda
 * @date 2024/06/07
 */
@Data
public class ElectronicVisaContract {

    /**
     * 模板id
     */
    private String templateId;

    /**
     * 签署人姓名
     */
    private String name;

    /**
     * 签署人手机号
     */
    private String mobile;

    /**
     * 签署人身份证号
     */
    private String idCard;

    /**
     * 乙方信用代码
     */
    private String actorSocialCreditCode;

    /**
     * 乙方企业名称
     */
    private String actorCorporateName;


    /**
     * 发起人用户id
     */
    private String operatorId;

    /**
     * 合同id
     */
    @NotNull(message = "合同id不能为空")
    private Long contractId;

    /**
     * 合同组件内容
     */
    private List<AddFillFieldInfo> fillFieldList;

    /**
     * 授权方的openid
     */
    private String openId;

    /**
     * 子客企业经办人的唯一标识
     */
    private String proxyOperatorOpenid;

    /**
     * 参与方具体名称。长度最大128个字符。
     * 注意：
     * 1）使用签署模板场景，actorId需要与模板中参与方标识保持一致即代表同一个参与方对象，actorName代表具体参与方主体的名称。
     * 2）如果是企业参与方，actorName指定的企业在法大大已实名，该企业会自动加入任务。
     */
    private String actorName;

    /**
     * 合同任务截止时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @JsonSerialize(include = JsonSerialize.Inclusion.NON_EMPTY)
    private Date expiresTime;

    /**
     * 甲方合同签署类型:true:个人签署，false:机构签署
     */
    private Boolean partyType;

    /**
     * 乙方合同签署类型:true:个人签署，false:机构签署
     */
    private Boolean actorPartyType;
}
